JavaScript

Map[@@species]プロパティ

 編集:2022.07.28 by T.A.

Map[@@species] アクセサー プロパティは、Map コンストラクターを返します。

解説

species アクセサープロパティは Map オブジェクトのデフォルト コンストラクターを返します。サブクラスのコンストラクターは、コンストラクターに代入して変更することによりオーバーライドすることができます。

通常のオブジェクトの species

species プロパティはデフォルト コンストラクター関数を返しますので、Map オブジェクトには Map コンストラクターを返します。

Map[Symbol.species];	// function Map()
派生オブジェクトの species

派生したコレクションオブジェクトの中では(例えばカスタム マップである MyMap)、MyMap の species は MyMap コンストラクターになっています。しかし、これをオーバーライドして、派生クラスのメソッド内で親の Map オブジェクトを返したい場合があります。

class MyMap extends Map {
  // MyMap種を親Mapコンストラクターに上書きします
  static get [Symbol.species]() { return Map; }
}

テスト